Trunking/aggregation systems typically work as follows. Device A wishes to send a packet of size k to Device B. Device A splits the packet into equal portions (e.g., four portions), and sends each of the four smaller pieces across a separate link. Device B receives the pieces and reassembles them to obtain the original packet. Unfortunately, if any of the four pieces is lost during transmission, Device B will be unable to reconstruct the original packet. And, the probability of successfully receiving enough pieces to reconstruct the original packet decreases geometrically with the number of links.
The likelihood of unrecoverable transmissions is considerably increased in WAN environments where the links are paths across the Internet, and packet loss is much more significant. WWAN environments have even more severe loss, due to factors such as real-time changes in signal strength and interference. Yet another problem with traditional trunking/aggregation systems is that they tend to perform well only when the links are completely under control (i.e. when there is no cross traffic), and when the capacity of each link is well known and does not vary significantly over time. In WAN environments (for example), these assumptions do not hold and existing trunking techniques adapt poorly for this reason as well.